#include <unordered_map>
#include <ceres/ceres.h>
#include <memory>
#include "Calibration.h"
//#include "initialization/Initialization.h"
//#include "Optimizer.h"

namespace Estimator
{
class initialization;
class Optimizer;
class Managing;

class StepsOptimization
{
  public:
    StepsOptimization() = delete;
    StepsOptimization(Calibration &calibration);
    virtual ~StepsOptimization() = default;

    void RunOptimization(Managing* pManager);

  private:
    const Calibration mCalibration_;
    std::shared_ptr<initialization> mpInit_;
    std::shared_ptr<Optimizer> mpOptimization_;
};
}